﻿#include "sensordataop.h"

SensorDataOp::SensorDataOp()
{

}

//对数据库进行增删改查
//插入数据
void  SensorDataOp::InsertSensorDataToDb(QSqlDatabase db, SensorData sensordata)
{
// 构造sql语句
   // QString str = QString("insert into SensorDataTable values('%1','%2','%3','%4','%5','%6','%7','%8','%9','%10')").arg(sensordata.DeviceId,sensordata.SensorAddr,sensordata.AirTemp,sensordata.AirDamp,sensordata.SoilTemp, sensordata.SoilDamp,sensordata.LightValue, sensordata.CO2,sensordata.O2).arg(sensordata.Time);
    QString str = QString("insert into SensorDataTable values(%1,%2,%3,%4,%5,%6,%7,%8,%9,\'%10\')").
                arg(sensordata.DeviceId,QString::number(sensordata.SensorAddr),
                    QString("%1").arg(sensordata.AirTemp),
                    QString("%1").arg(sensordata.AirDamp),
                    QString("%1").arg(sensordata.SoilTemp),
                    QString("%1").arg(sensordata.SoilDamp),
                    QString("%1").arg(sensordata.LightValue),
                    QString("%1").arg(sensordata.CO2),
                    QString("%1").arg(sensordata.O2)).arg(sensordata.Time.toString("yyyy-MM-dd hh:mm:ss\'"));
    qDebug()<< str;
    ExecuteResults results =this->my_op.DbExecute(db, str) ;
    if(results.flag)
    {
        qDebug()<<"sucess";

    }
    else
    {
        qDebug()<<"error";
    }

}

// 查询所有的记录
QSqlTableModel* SensorDataOp::SelectSensorDataFromModel(QSqlDatabase db)
{
    model = new QSqlTableModel(0,db); //
    model->setTable("SensorDataTable");
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);
    model->select();

    return model;

}
// 查询数据表中所有记录
QList<SensorData> SensorDataOp::SelectSensorDataFromDb(QSqlDatabase db)
{
    QList<SensorData> sensorDatas;

    // 构造sql语句
        QString str = QString("select * from SensorDataTable");
        qDebug()<< str;
        ExecuteResults results = this->my_op.DbExecute(db, str) ;
        if(results.flag)
        {
            qDebug()<<"sucess";
            while(results.query.next())
            {
                qDebug() << results.query.value(0).toString() <<" "
                         << results.query.value(1).toString()<<" "
                         <<results.query.value(2).toString();
                SensorData data;
                data.DeviceId = results.query.value(1).toString();
                data.SensorAddr = results.query.value(2).toInt();
                data.AirTemp = results.query.value(3).toFloat();
                data.AirDamp = results.query.value(4).toFloat();
                data.SoilTemp = results.query.value(5).toFloat();
                data.SoilDamp = results.query.value(6).toFloat();
                data.LightValue = results.query.value(7).toFloat();
                data.CO2 = results.query.value(8).toFloat();
                data.O2 = results.query.value(9).toFloat();
                data.Time = results.query.value(10).toDateTime();
                sensorDatas.append(data);
            }

        }
        else
        {
            qDebug()<<"error";
        }
        return sensorDatas;
}
